package utils

import (
	"github.com/hashicorp/consul/api"
	"log"
)

func RegService() {

	//应该是拿到 配置 结构
	config := api.DefaultConfig()

	//consul 地址
	config.Address = "localhost:8500"

	//调取服务结构
	reg := api.AgentServiceRegistration{}

	//服务名称
	reg.Name = "菜鸡飞"

	//注册服务的IP
	reg.Address = "127.0.0.1"

	//注册服务的端口
	reg.Port = 8080

	//服务的标签（暂时不知道干什么用）
	reg.Tags = []string{"caiji"}

	//创建consule 检查器
	check := api.AgentServiceCheck{}

	//心跳时间 5秒检查一次
	check.Interval = "5s"

	//检查的URL
	check.HTTP = "http://127.0.0.1:8080/health"

	//复制给reg 的check 这个结构的指针
	reg.Check = &check

	//创建客户端
	client, err := api.NewClient(config)

	//如果存在错误抛出
	if err != nil {
		log.Fatal(err)
	}

	//这应该就是注册服务
	err = client.Agent().ServiceRegister(&reg)

	//如果存在错误抛出
	if err != nil {
		log.Fatal(err)
	}

}

func UnRegService() {
	config := api.DefaultConfig()
	config.Address = "192.168.3.14:8500"
	client, err := api.NewClient(config) //创建客户端
	if err != nil {
		log.Fatal(err)
	}
	ConsulClient := client
	ConsulClient.Agent().ServiceDeregister("菜鸡飞")
}
